﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace KgUtils.Wpf.BaseClasses
{
    /// <summary>
    /// interface générale des view Model
    /// </summary>
    public interface IView<TEntityBE> where TEntityBE : BaseBE<TEntityBE>, IEntity
    {
        /// <summary>
        /// Utiliser la listeEntite dans le cas d'ecran contenant une liste d'élément à afficher, laisser "EntiteCourante" à null.
        /// </summary>
        ObservableCollection<TEntityBE> ListeEntites { get; set; }

        /// <summary>
        /// Si l'écran ne présente qu'une seule entité, utiliser "EntiteCourante" et laisser listeEntité à nul
        /// </summary>
        TEntityBE EntiteCourante { get; set; }

        void Initialize();
        bool IsDataControlOK();
        bool SelectFirstEntity();
        bool SaveAll();
        bool SaveEntiteCourante();
        StringBuilder ErrorMessage { get; set; }
        void ShowErrorsMessage();
    }
}
